home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Found / FWCollec / FWTColl.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  4.2 KB  |  121 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWTColl.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef FWTCOLL_H
  11. #define FWTCOLL_H
  12.  
  13. #ifndef FWORDCOL_H
  14. #include "FWOrdCol.h"
  15. #endif
  16.  
  17. #ifndef FWEXCLIB_H
  18. #include "FWExcLib.h"
  19. #endif
  20.  
  21. #ifndef FWODFEXC_H
  22. #include "FWODFExc.h"
  23. #endif
  24.  
  25. //========================================================================================
  26. // Class FW_TOrderedCollection
  27. //========================================================================================
  28.  
  29. template<class t> 
  30. class FW_TOrderedCollection : public FW_CPrivOrderedCollection
  31. {
  32. public:
  33.     FW_DECLARE_AUTO(FW_TOrderedCollection)
  34.     
  35. //    friend class FW_TOrderedCollectionIterator<t>;
  36.     
  37. //----------------------------------------------------------------------------------------
  38. //    Constructors/Destructor
  39. //
  40. public:
  41.     FW_TOrderedCollection(FW_OrderedCollection_MatchProc matchProc = NULL) :
  42.         FW_CPrivOrderedCollection(matchProc) {}
  43.     ~FW_TOrderedCollection() {}
  44.  
  45. //----------------------------------------------------------------------------------------
  46. //    API
  47. //
  48. public:
  49.     unsigned long         Count() const             
  50.                             {return FW_PrivOrderedCollection_Count(fImplementation);}
  51.     
  52.     void                AddFirst(const t* element)
  53.                             {FW_FailOnError(FW_PrivOrderedCollection_AddFirst(fImplementation, element));}
  54.     void                AddLast(const t* element)
  55.                             {FW_FailOnError(FW_PrivOrderedCollection_AddLast(fImplementation, element));}
  56.     void                AddBefore(const t* existing, const t* tobeadded)
  57.                             {FW_FailOnError(FW_PrivOrderedCollection_AddBefore(fImplementation, fMatchProc, existing, tobeadded));}
  58.     void                AddAfter(const t* existing, const t* tobeadded)
  59.                             {FW_FailOnError(FW_PrivOrderedCollection_AddAfter(fImplementation, fMatchProc, existing, tobeadded));}
  60.  
  61.     t*                    After(const t* existing) const
  62.                             {return (t*)FW_PrivOrderedCollection_After(fImplementation, fMatchProc, existing);}
  63.     t*                    Before(const t* existing) const
  64.                             {return (t*)FW_PrivOrderedCollection_Before(fImplementation, fMatchProc, existing);}
  65.  
  66.     t*                    First() const
  67.                             {return (t*)FW_PrivOrderedCollection_First(fImplementation);}
  68.     t*                    Last() const
  69.                             {return (t*)FW_PrivOrderedCollection_Last(fImplementation);}
  70.  
  71.     t*                    RemoveFirst()
  72.                             {return (t*)FW_PrivOrderedCollection_RemoveFirst(fImplementation);}
  73.     t*                    RemoveLast()
  74.                             {return (t*)FW_PrivOrderedCollection_RemoveLast(fImplementation);}
  75.     void                RemoveAll()
  76.                             {FW_PrivOrderedCollection_RemoveAll(fImplementation);}
  77.         
  78.     void                Remove(const t* existing)
  79.                             {FW_PrivOrderedCollection_Remove(fImplementation, fMatchProc, existing);}
  80.     FW_Boolean            Contains(const t* existing) const
  81.                             {return FW_PrivOrderedCollection_Contains(fImplementation, fMatchProc, existing);}
  82. };
  83.  
  84. //========================================================================================
  85. // Class FW_TOrderedCollectionIterator
  86. //========================================================================================
  87.  
  88. template<class t> 
  89. class FW_TOrderedCollectionIterator : public FW_CPrivOrderedCollectionIterator
  90. {
  91. public:
  92.     FW_DECLARE_AUTO(FW_TOrderedCollectionIterator)
  93.  
  94. //----------------------------------------------------------------------------------------
  95. //    Constructors/Destructor
  96. //
  97. public:
  98.     FW_TOrderedCollectionIterator(const FW_TOrderedCollection<t>* collection) :
  99.         FW_CPrivOrderedCollectionIterator(collection) {}
  100.     ~FW_TOrderedCollectionIterator() {}
  101.     
  102. //----------------------------------------------------------------------------------------
  103. //    API
  104. //
  105. public:
  106.     t*                First()
  107.                         {return (t*)FW_PrivOrderedCollectionIterator_First(fImplementation);}
  108.     t*                Next()
  109.                         {return (t*)FW_PrivOrderedCollectionIterator_Next(fImplementation);}
  110.     t*                Last()
  111.                         {return (t*)FW_PrivOrderedCollectionIterator_Last(fImplementation);}
  112.     t*                Previous()
  113.                         {return (t*)FW_PrivOrderedCollectionIterator_Previous(fImplementation);}
  114.     t*                Current()
  115.                         {return (t*)FW_PrivOrderedCollectionIterator_Current(fImplementation);}
  116.     FW_Boolean        IsNotComplete()
  117.                         {return FW_PrivOrderedCollectionIterator_IsNotComplete(fImplementation);}
  118. };
  119.  
  120. #endif
  121.